home *** CD-ROM | disk | FTP | other *** search
/ C & C++ Multimedia Cyber Classroom / C and C++ Multimedia Cyber Classroom (Prentice Hall) (1998).iso / cpphtp2 / code.jar / code / ch12 / fig12_04.txt < prev   
Text File  |  1998-02-27  |  1KB  |  42 lines

  1. 1   // Fig. 12.4: fig12_04.cpp
  2. 2   // Test driver for Stack template.
  3. 3   // Function main uses a function template to manipulate
  4. 4   // objects of type Stack< T >.
  5. 5   #include <iostream.h>
  6. 6   #include "tstack1.h"
  7. 7   
  8. 8   // Function template to manipulate Stack< T >
  9. 9   template< class T >
  10. 10  void testStack( 
  11. 11     Stack< T > &theStack,   // reference to the Stack< T >
  12. 12     T value,                // initial value to be pushed
  13. 13     T increment,            // increment for subsequent values
  14. 14     const char *stackName ) // name of the Stack< T > object
  15. 15  {
  16. 16     cout << "\nPushing elements onto " << stackName << '\n';
  17. 17  
  18. 18     while ( theStack.push( value ) ) { // success true returned
  19. 19        cout << value << ' ';
  20. 20        value += increment;
  21. 21     }
  22. 22  
  23. 23     cout << "\nStack is full. Cannot push " << value 
  24. 24          << "\n\nPopping elements from " << stackName << '\n';
  25. 25  
  26. 26     while ( theStack.pop( value ) )  // success true returned
  27. 27        cout << value << ' ';
  28. 28  
  29. 29     cout << "\nStack is empty. Cannot pop\n";
  30. 30  }
  31. 31  
  32. 32  int main()
  33. 33  {
  34. 34     Stack< double > doubleStack( 5 );   
  35. 35     Stack< int > intStack;
  36. 36  
  37. 37     testStack( doubleStack, 1.1, 1.1, "doubleStack" );
  38. 38     testStack( intStack, 1, 1, "intStack" );
  39. 39  
  40. 40     return 0;
  41. 41  }
  42.